import request from '@/utils/request'
// 完全删除模拟数据导入
// import { mockPurchasers } from '@/mock/purchasers'

// 是否使用模拟数据 - 始终设为false
const useMockData = false;

/**
 * 获取广交会采购商数据
 * @param {Object} params 查询参数
 * @returns {Promise} 返回Promise对象
 */
export function getCantonFairPurchasers(params) {
  return request({
    url: '/api/purchasers/canton-fair/search',
    method: 'get',
    params
  })
}

/**
 * 获取符合条件的采购商数量
 * @param {Object} params 查询参数
 * @returns {Promise} 返回Promise对象
 */
export function getCantonFairPurchasersCount(params) {
  return request({
    url: '/api/purchasers/canton-fair/count',
    method: 'post',
    data: params,
    headers: {
      'Content-Type': 'application/json'
    }
  })
}

/**
 * 获取用户余额信息
 * @returns {Promise} 返回Promise对象
 */
export function getUserBalanceInfo() {
  return request({
    url: '/api/balance/info',
    method: 'get'
  })
}

/**
 * 获取采购商完整联系信息
 * @param {Number} id 采购商ID
 * @param {string|number} sessionNumber 广交会届数
 * @param {string} fieldName 需要获取的字段名称
 * @returns {Promise} 返回Promise对象
 */
export function getPurchaserFullContactInfo(id, sessionNumber, fieldName) {
  return request({
    url: `/api/purchasers/canton-fair/contact`,
    method: 'get',
    params: {
      purchaserId: id,
      sessionNumber: sessionNumber,
      fieldName: fieldName
    }
  })
}

/**
 * 导出广交会采购商数据
 * @param {Object} params 查询参数
 * @returns {Promise} 导出结果
 */
export function exportCantonFairPurchasers(params) {
  // 分离参数，exportCount、selectedFields和language作为URL参数，其他参数放在请求体
  const exportCount = params.exportCount;
  const selectedFields = params.selectedFields;
  const language = params.language;
  const { exportCount: _, selectedFields: __, language: ___, ...bodyParams } = params;

  // 构建URL参数
  let url = `/api/purchasers/canton-fair/export?exportCount=${exportCount}`;
  if (selectedFields && selectedFields.trim() !== '') {
    url += `&selectedFields=${encodeURIComponent(selectedFields)}`;
  }
  if (language && language.trim() !== '') {
    url += `&language=${encodeURIComponent(language)}`;
  }

  // console.log('广交会采购商导出请求URL:', url);
  // console.log('广交会采购商导出请求体参数:', bodyParams);
  // console.log('广交会采购商选中字段:', selectedFields);
  // console.log('广交会采购商导出语言:', language);

  return request({
    url: url,
    method: 'post',
    data: bodyParams,
    responseType: 'blob',
    headers: {
      'Content-Type': 'application/json',
      'Accept': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/json',
      'Connection': 'keep-alive'
    },
    meta: {
      isExport: true,
      skipErrorMessage: true // 跳过默认错误消息，让导出组件自己处理
    },
    retry: 3,
    retryDelay: 3000,
    timeout: 600000 // 延长超时时间为10分钟
  })
}